package com.woniuxy.test;

import com.woniuxy.entity.UserEntity;
import com.woniuxy.mapper.UserMapper;
import com.woniuxy.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author: 马宇航
 * @Description: 第一个测试类
 * @DateTime: 25/10/21/星期二 12:01
 * @Component: 成都蜗牛学苑
 **/
@SpringBootTest
public class MyTestFirst {
    @Autowired
    UserMapper userMapper;
    @Autowired
    UserService userService;
    @Test
    public void insert() {
        //本身就是面向对象在开发，并没有写sql语句
        UserEntity userEntity = new UserEntity();
        userEntity.setUsername("admin");
        userEntity.setPassword("123456");
        userEntity.setSex(1);
        userService.insert(userEntity);
    }
    @Test
    public void update() {
        //本身就是面向对象在开发，并没有写sql语句
        for (int i = 0; i < 1; i++) {
            UserEntity userEntity = new UserEntity();
            //带主键就是更新
            userEntity.setUsername("root"+i);
            userEntity.setPassword(i+"123");
            userEntity.setSex(1);
            userMapper.save(userEntity);
        }

    }
    /**
     * 根据用户名来删除数据
     * ChangeLog : 1. 创建 (25/10/21/星期二 12:07 [马宇航]);
     *
     * @return void
    */
    @Test
    @Transactional  //事务注解在测试类中，默认是回滚的，无论是新增还是删除，都不会对数据库产生影响
    public void delete() {
        //本身就是面向对象在开发，并没有写sql语句
        userMapper.deleteByUsername("admin");
    }
    @Test
    public void select() {
        //本身就是面向对象在开发，并没有写sql语句
        List<UserEntity> all = userMapper.findAll();
        all.forEach(System.out::println);
    }
    @Test
    public void selectAndLike() {
        //本身就是面向对象在开发，并没有写sql语句
        UserEntity user= userMapper.findOneByUsernameAndPassword("admin","123456");
        System.out.println(user);
    }
}
